【Andrew Ng 深度学习视频笔记】-lec1.3

本文记录第一课第三周视频中的概念,包括了一些公式推导过程以及课后作业的一些记录。

1.构造神经网络的主要步骤:

1
2
3
4
5
6
1、首先需要先定义网络模型的结构(例如特征数量等)
2、然后合理的初始化模型的各个参数
3、接着迭代循环以下步骤
step1:计算当前的loss值 (forward propagation)
step2:计算当前的梯度 (backward propagation)
step3:更新相关参数 (gradient descent)

2.关于梯度的推导:

对于m个样本来说,所有变量都以矩阵的形式来表示:
$A =\sigma(z) =\sigma(w^T X + b) = (a^{(0)}, a^{(1)}, …, a^{(m-1)}, a^{(m)})$,这里$a^{(i)}=\hat{y}^{(i)}$
单样本的 Loss function: $\zeta(x^{i},y^{i}) = -(y^{i}\log{\hat{y^{i}}}+(1-y^{i})\log{(1-\hat{y^{i}})})$
总体的coss function: $J = -\frac{1}{m}\sum_{i=1}^{m}y^{(i)}\log(a^{(i)})+(1-y^{(i)})\log(1-a^{(i)})$
在每次迭代求梯度时,需要分别计算$\frac{\partial J}{\partial w}$和$\frac{\partial J}{\partial b}$

$\frac{\partial J}{\partial w}= \frac{1}{m}X(A-Y)^T\tag{1}$
推导过程:
$\frac{\partial J}{\partial w}=-\frac{1}{m}(Y\frac{1}{A}\frac{\partial A}{\partial w}+(1-Y)(\frac{1}{1-A})(-1)(\frac{\partial A}{\partial w}))\tag{2}$
又因为:$\frac{\partial A}{\partial w}=\frac{\partial A}{\partial z}\frac{\partial z}{\partial w}$
而$\frac{\partial A}{\partial z}= A(1-A)——sigmoid求导公式$
同时:$\frac{\partial z}{\partial w}=X$
因此可得出:$\frac{\partial A}{\partial w}=A(1-A)X\tag{3}$
(3)代入(2)可得到(1)。

3.关于作业里Numpy的一些用法:

1
2
3
4
5
6
7
8
9
10
11
12
向量点积:结果是数字、向量外积:结果是矩阵、向量点乘:结果是向量、常规矩阵向量点积:结果是矩阵
np.dot(x1,x2)
np.outer(x1,x2)
np.multiply(x1,x2)
np.dot(W,x1)
L1 正则: np.sum(abs(yhat-y))
L2正则:np.sum(np.multiply(yhat-y,yhat-y))
A = sigmoid(np.dot(w.T,X)+b)
cost = -(np.dot(np.log(A),Y.T)+np.dot(np.log(1-A),(1-Y).T))/m
dw = np.dot(X,(A-Y).T)/m
db = np.sum(A-Y)/m